package com.tanhua.dubbo.api;

/**
 * @Author: cl
 * @Date: 2022/5/4 - 05 - 04
 * @Description:
 */

import com.tanhua.model.mongo.Movement;
import com.tanhua.model.vo.PageResult;

import java.util.List;

/**
 * 朋友圈动态模块接口
 */
public interface MovementApi {

    /**
     * 发送动态
     * @return
     */
    public String send(Movement movement);

    /**
     * 获取个人动态
     *
     * @param userId
     * @return
     */
    public List<Movement> getByUserid(Long userId, Integer page, Integer pageSize);

    /**
     * 获取好友动态
     *
     * @param userId
     * @return
     */
    public List<Movement> getByFriend(Long userId, Integer page, Integer pageSize);

    /**
     * 通过推荐的pids查询动态
     *
     * @param pids
     * @return
     */
    public List<Movement> findByPids(List<Long> pids);

    /**
     * 随机查询count条
     *
     * @param count
     * @return
     */
    public List<Movement> findByRandom(Integer count);

    /**
     * 通过动态id查询动态
     *
     * @param movementId
     * @return
     */
    public Movement findByMovementId(String movementId);

    /**
     * 查询好友可见动态或者推荐人所有动态
     *
     * @param userId
     * @return
     */
    List<Movement> getByFriendId(Long userId, Long friendId, Integer page, Integer pageSize);

    //根据用户的id或审核状态分页查询用户所有动态
    PageResult getMovementByUidAndState(Integer page, Integer pagesize, Long uid, String state);

    //更新动态审核状态
    void update(String movementId, Integer state);
}
